From 3d1403e6849dd6394fb54a61af9140541fd9e880 Mon Sep 17 00:00:00 2001 From: Carlos Garnacho Date: Mon, 8 Nov 2010 20:12:15 +0100 Subject: [PATCH] GtkThemingEngine: ensure that background isn't rendered past the frame boundaries. --- gtk/gtkthemingengine.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/gtk/gtkthemingengine.c b/gtk/gtkthemingengine.c index 46577670ef..42ef073f3b 100644 --- a/gtk/gtkthemingengine.c +++ b/gtk/gtkthemingengine.c @@ -1354,7 +1354,7 @@ gtk_theming_engine_render_background (GtkThemingEngine *engine, gboolean running; gdouble progress, alpha = 1; GtkJunctionSides junction; - gint radius; + gint radius, border_width; flags = gtk_theming_engine_get_state (engine); junction = gtk_theming_engine_get_junction_sides (engine); @@ -1372,11 +1372,24 @@ gtk_theming_engine_render_background (GtkThemingEngine *engine, gtk_theming_engine_get (engine, flags, "background-image", &pattern, "background-color", &bg_color, + "border-width", &border_width, "border-radius", &radius, NULL); running = gtk_theming_engine_state_is_running (engine, GTK_STATE_PRELIGHT, &progress); + if (border_width > 0) + { + x += border_width; + y += border_width; + width -= 2 * border_width; + height -= 2 * border_width; + radius -= 2 * border_width; + + if (radius < 0) + radius = 0; + } + _cairo_round_rectangle_sides (cr, (gdouble) radius, x, y, width, height, SIDE_ALL, junction); -- 2.30.2